home *** CD-ROM | disk | FTP | other *** search
- unit ADOXSecurityU1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, Db, ADODB;
-
- type
- TForm1 = class(TForm)
- btnListGroupsAndUsers: TButton;
- btnCreateGroup: TButton;
- ADOConnection1: TADOConnection;
- Memo1: TMemo;
- btnCreateUser: TButton;
- btnGetPerms: TButton;
- btnSetPerms: TButton;
- btnAddUserToGroup: TButton;
- procedure btnListGroupsAndUsersClick(Sender: TObject);
- procedure btnCreateGroupClick(Sender: TObject);
- procedure btnCreateUserClick(Sender: TObject);
- procedure btnGetPermsClick(Sender: TObject);
- procedure btnSetPermsClick(Sender: TObject);
- procedure btnAddUserToGroupClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.DFM}
-
- uses
- ADOX_TLB, ComObj;
-
- procedure TForm1.btnListGroupsAndUsersClick(Sender: TObject);
- var
- Cat : Catalog;
- intGroup: integer;
- intUser : integer;
- begin
- Cat:=CreateCOMObject(Class_Catalog) as Catalog;
-
- for intGroup:=0 to Cat.Groups.Count - 1 do
- Memo1.Lines.Add(Cat.Groups[intGroup].Name);
-
- for intUser:=0 to Cat.Users.Count - 1 do
- Memo1.Lines.Add(Cat.Users[intUser].Name);
- end;
-
- procedure TForm1.btnCreateGroupClick(Sender: TObject);
- var
- Cat: Catalog;
- grp: Group;
- begin
- Cat:=CreateCOMObject(Class_Catalog) as Catalog;
- Cat.Set_ActiveConnection(ADOConnection1.ConnectionObject);
-
- grp:=CreateCOMObject(Class_Group) as Group;
- grp.Name:='Technical';
- Cat.Groups.Append(grp);
- end;
-
- procedure TForm1.btnCreateUserClick(Sender: TObject);
- var
- Cat: Catalog;
- usr: User;
- begin
- Cat:=CreateCOMObject(Class_Catalog) as Catalog;
- Cat.Set_ActiveConnection(ADOConnection1.ConnectionObject);
-
- usr:=CreateCOMObject(Class_User) as User;
- usr.Name:='Guy Smith-Ferrier';
- Cat.Users.Append(usr, '');
- end;
-
- procedure TForm1.btnAddUserToGroupClick(Sender: TObject);
- var
- Cat: Catalog;
- begin
- Cat:=CreateCOMObject(Class_Catalog) as Catalog;
- Cat.Set_ActiveConnection(ADOConnection1.ConnectionObject);
-
- Cat.Groups['Technical'].Users.Append('Guy Smith-Ferrier', EmptyParam);
- end;
-
- procedure TForm1.btnGetPermsClick(Sender: TObject);
- var
- Cat: Catalog;
- grp: Group;
- Perms: LongInt;
- begin
- Cat:=CreateCOMObject(Class_Catalog) as Catalog;
- Cat.Set_ActiveConnection(ADOConnection1.ConnectionObject);
-
- grp:=Cat.Groups['Technical'];
- Perms:=grp.GetPermissions('Customers', adPermObjTable, EmptyParam);
- if (Perms and adRightDelete) = adRightDelete then
- ShowMessage('Technical group can delete rows in Customers');
- end;
-
- procedure TForm1.btnSetPermsClick(Sender: TObject);
- var
- Cat: Catalog;
- grp: Group;
- begin
- Cat:=CreateCOMObject(Class_Catalog) as Catalog;
- Cat.Set_ActiveConnection(ADOConnection1.ConnectionObject);
-
- grp:=Cat.Groups['Technical'];
- grp.SetPermissions('Customers', adPermObjTable, adAccessSet, adRightDelete, EmptyParam, EmptyParam);
-
- grp.SetPermissions('Customers', adPermObjTable, adAccessGrant, adRightDrop, EmptyParam, EmptyParam);
- end;
-
- end.
-